﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace ServicioWPF.Componentes
{
    class UsuariosBinding : INotifyPropertyChanged
    {
        List<Usuario> listaUsuarios = new List<Usuario>();

        public UsuariosBinding()
        {
            /*
             * Si la aplicación esta en ejecución leemos los usuarios del archivo Xml,
             * caso contrario creamos dos usuarios de prueba para el modo de diseño.
             */
            if (!DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject()))
                ObtenerUsuariosDummy(); 
            else
                ObtenerUsuariosDummy();
                

        }

        public List<Usuario> Items
        {
            get
            {
                return listaUsuarios;
            }
            set
            {
                listaUsuarios = value;

                // Se notifica al 'front-end' de que los datos han cambiado y deben refrescarse.
                OnPropertyChanged("Items");
            }
        }

        private void ObtenerUsuariosDummy()
        {
            listaUsuarios = new List<Usuario>();
            listaUsuarios.Add(new Usuario("Cuestionario", "Cuestionario", "nuevo", 1, "../imagenes/Clipboard-01.ico"));
            listaUsuarios.Add(new Usuario("Profesor", "Profesor", "profesor", 2, "../imagenes/User Administrator Blue-01.ico"));
            listaUsuarios.Add(new Usuario("Alumno", "Alumno", "alumno", 3, "../imagenes/User Coat Blue-01.ico"));
            listaUsuarios.Add(new Usuario("Catálogos", "Catalogos", "catalogos", 4, "../imagenes/My Documents-01.ico"));
            listaUsuarios.Add(new Usuario("Búsquedas", "Busquedas", "busquedas", 5, "../imagenes/Binoculars-01.ico"));
            listaUsuarios.Add(new Usuario("Acerca de", "acercade", "acercade", 6, "../imagenes/Button Info-01.ico"));

            //listaUsuarios.Add(new Usuario("Ryan", "ryan", "ryan", 1, "../imagenes/ryan.jpg"));
            //listaUsuarios.Add(new Usuario("Angela", "angela", "angela", 2, "../imagenes/angela.jpg"));
            //listaUsuarios.Add(new Usuario("Ryan", "ryan", "ryan", 4, "../imagenes/ryan.jpg"));
            //listaUsuarios.Add(new Usuario("Angela", "angela", "angela", 5, "../imagenes/angela.jpg"));
            //listaUsuarios.Add(new Usuario("Nuevo", "NuevoCuestionario", "nuevo", 6, "../imagenes/Clipboard-01.ico"));
        }


        private void ObtenerUsuarios()
        {
            listaUsuarios = new List<Usuario>();
            listaUsuarios = Datos.Aplicacion.ObtenerUsuarios();
        }

        #region Miembros de INotifyPropertyChanged

        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
            {
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        #endregion

    }
}
